mock模拟数据

(一) 安装和使用方法

  1. 安装

    npm install mockjs
    
  2. 使用

    var Mock = require('mockjs')
    var data = Mock.mock({
    	//属性list的值是一个数组,其中含1到10个元素
        'list|1-10':[{
        	//属性id是一个自增数,起始值为1,每次增1
            'id|+1':1000
        }]
    })
    
    console.log(data);
    
  3. 数据占位符

    (1) 说明

    • 占位符 只是在属性值字符串中占个位置,并不出现在最终的属性值中。
    • 用@来标识占位符
    • 占位符引用的是 Mock.Random中的方法
    • Mock.Random.extend()来扩展自定义占位符
    • 占位符 会优先引用 数据模板 中的属性。
    • 占位符 支持 相对路径 和 绝对路径。

    (2) 使用方法

    1. Random.xxx() //使用Random函数
    2. Mock.mock('@xxx') // 使用占位符 注意:其中xxx为random对应方法,也对应@xxx的占位符

    (二) Random方法总结

    (1) 常用

    1. Random.boolean()   随机布尔值
    2. Random.integer( min?, max? )  随机整数min-max之间
    3. Random.string( pool?, min?, max? )   随机字符串
    4. Random.date( format? )  随机日期
    5. Random.word( min?, max? ) 随机字母
    6. Random.cparagraph( min?, max? )   中文段落
    7. Random.csentence( min?, max? )   中文句子
    8. Random.cword( pool?, min?, max? )  汉字
    9. Random.name( middle? )  姓名
    10. Random.cname()  中文姓名
    11. Random.city( prefix? )  市   (prefix是否带前缀省,值为boolean12. Random.county( prefix? )  区县  (prefix是否带缀省,市)
    

    (2) 不常用

    1. Random.natural( min?, max? )  随机自然数 min-max之间
    2. Random.float()   随机浮点数
       Random.character( pool? )   随机字母  pool对应有(lower[小写]/upper[大写]/number[数字]/symbol[符号]3. Random.range(start?, stop, step?)   随机范围数字组成的数组
    4. Random.time( format? )  随机时间
    5. Random.datetime( format? )  随机日期+时间
    6. Random.now( unit?, format? )  当前时间
    7. Random.image( size?, background?, foreground?, format?, text? )  图片占位
    8. Random.dataImage( size?, text? )  生成base64格式图片
    9. Random.color()  随机颜色
    10. Random.rgb()  随机rgb颜色
    11. Random.rgba()   rgba颜色值
    12. Random.paragraph( min?, max? )   段落
    13. Random.sentence()
    14. Random.word( min?, max? )
    15. Random.title( min?, max? ) 
    16. Random.ctitle( min?, max? ) 标题
    17. Random.first()18. Random.last()19. Random.name( middle? )  姓名
    20. Random.cfirst()  中文姓
    21. Random.clast()  中文名 
    22. Random.url()  随机URL
    23. Random.domain()  随机域名
    24. Random.protocol()
    25. Random.email()  邮箱
    26. Random.region()
    27. Random.province()28. Random.increment( step? )  递增
    

    03 一个实例

    let testData = []
    for(let i =0;i<10;i++){
      testData.push(mock.mock({
        'id':mock.mock('@id'),
        'userName':mock.mock('@cname'),
        'age|18-45':1,
        'gender|1':['男','女'],
        'addr':mock.mock('@city(true)'),
      }))
    }
    
    console.log(testData)
    
    // 结果
    {id: "230000199503251711", userName: "田刚", age: 32, gender: "女", addr: "陕西省 安康市"}
    {id: "220000198911247467", userName: "卢刚", age: 22, gender: "女", addr: "重庆 重庆市"}
    {id: "630000199203303369", userName: "黄超", age: 30, gender: "女", addr: "上海 上海市"}
    {id: "32000019900306070X", userName: "任超", age: 41, gender: "女", addr: "云南省 怒江傈僳族自治州"}
    {id: "370000201106237773", userName: "金刚", age: 20, gender: "男", addr: "香港特别行政区 新界"}
    {id: "150000200106151982", userName: "汤涛", age: 22, gender: "女", addr: "海南省 海口市"}
    {id: "630000201610178622", userName: "康伟", age: 34, gender: "女", addr: "天津 天津市"}
    {id: "32000019860919883X", userName: "吕艳", age: 41, gender: "女", addr: "山西省 晋城市"}
    {id: "510000198203211040", userName: "丁霞", age: 38, gender: "男", addr: "山东省 烟台市"}
    {id: "220000197505283433", userName: "叶超", age: 33, gender: "女", addr: "河南省 南阳市"}
    

    参考链接: https://www.kancloud.cn/sophie_u/mockjs/532225